package com.example.springboot.service.impl;

import com.example.springboot.dao.impl.CourseDaoImpl;
import com.example.springboot.entity.Course;
import com.example.springboot.service.EntityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *
 * 事务测试
 * Created by wuning at 2018/8/22 14:59
 **/
@Service
public class CourseServiceImpl implements EntityService<Course> {

    @Autowired
    private CourseDaoImpl courseDao;

    @Override
    public Course getEntityById(Integer id) {
        return courseDao.getEntityById(id);
    }

    @Override
    public List<Course> getEntityList() {
        return courseDao.getEntityList();
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)//重新创建一个新的事务，如果当前存在事务，暂停当前的事务
    @Override
    public int add(Course course) {
        return courseDao.add(course);
    }

    @Transactional(propagation = Propagation.REQUIRED)//如果当前存在事务，则加入该事务，如果当前不存在事务，则创建一个新的事务
    @Override
    public int update(Integer id, Course course) {
        return courseDao.update(id,course);
    }

    @Override
    public int delete(Integer id) {
        return courseDao.delete(id);
    }
}
